package org.zero.model;

import com.alipay.api.domain.GoodsDetail;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Zero (cnzeropro@qq.com)
 * @date 2021/10/5 18:01
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AlipayRequest {
    /**
     * 商户订单号，必填
     */
    private String outTradeNo;

    /**
     * 订单名称，必填
     */
    private String subject;

    /**
     * 付款金额，必填
     */
    private String totalAmount;

    /**
     * 销售产品码（与支付宝签约的产品码名称），必填
     * 目前仅支持 FAST_INSTANT_TRADE_PAY
     */
    private String productCode = "FAST_INSTANT_TRADE_PAY";

    /**
     * 订单附加信息
     */
    private String body;

    /**
     * PC扫码支付的方式
     * 0：订单码-简约前置模式
     * 1：订单码-前置模式
     * 3：订单码-迷你前置模式
     * 4：订单码-可定义宽度的嵌入式二维码描述
     */
    private String qrPayMode;

    /**
     * 商户自定义二维码宽度。
     * 注：qr_pay_mode=4时该参数有效
     */
    private Long qrcodeWidth;

    /**
     * 订单绝对超时时间
     * 格式为：yyyy-MM-dd HH:mm
     */
    private String timeExpire;

    /**
     * 订单相对超时时间
     * 建议使用time_expire字段
     * 如果两者都传，优先使用time_expire
     */
    private String timeoutExpress = "10m";

    /**
     * 订单包含的商品列表信息
     */
    private List<GoodsDetail> goodsDetail;
}
